home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Spanish Scene 1
/
SpanishScene1.iso
/
spanish pack n°1 by llfb
/
revistas
/
fanzine
/
fanzine01.dms
/
fanzine01.adf
/
21
< prev
next >
Wrap
Text File
|
1990-12-11
|
8KB
|
221 lines
G U R U S Y G U R U S I T O S
(c) Warlord
> LOAD DEMO.S
OK
......
Cmove $28c1,Diwstop ; Display Window X + Y Stop
Cmove $38,Ddfstrt ; Data Fetch Start
Cmove $d0,Ddfstop ; Data Fetch Stop
Cmove $0,Bpl1mod ; Odd Bitplane Modulo
Cmove $0,Bpl2mod ; Even Bitplane Modulo
Cmove $1200,Bplcon0 ; Bitplane Control Register
plane1l Cmove $0000,Bpl1ptl ; Address Pointer Lower Word
plane1h Cmove $0000,Bpl1pth ; Address Pointer Upper Word
Cmove $000,color00 ; $dff180 colour 0
......
> ASSEMBLE
Pass 1
Pass 2
550 lines assembled into 670 bytes executable relocatable code
40345 bytes used
OK
> RUN
Software error - task held
Finish ALL disk activity
Select CANCEL to reset/debug
¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡¡ Aaaaaaaaaaaaahhhhhhhhhhhhhhhh !!!!!!!!!!!
¡¡ OTRO GURU !! ¿¿ POR QUE?? ¿¿ QUE HE HECHO YO PARA MERECER ESTO ??
¡ LOS ODIO ! ... ¡ODIO A LOS GURUS! ... ¡ME VENGARE! ... ¡¡ VENGANZA !!
...
Esta es la reacción típica de un esforzado programador ante la agradable
visita de nuestros amigos los gurus. ¡Pero no debiera de ser así!, ¡Debe-
mos recibirles bien! ... Decirles: ¡Oh gracias señor guru!, ¡encantado de
que me visite!, ¿y porqué?, porque nos dá la información exacta de dónde
se ha cometido nuestro fallo:
Software Failure. Press left mouse button to continue.
Guru Meditation #02010009.00009310
Para los curiosos, vamos a intentar explicar mas o menos su significa-
do. De todos modos explicar todos los terminos que aquí aparecen sería
como escribir aquí el "Rom Kernel Manual", al que remito a los interesa-
dos.
Codigo especifico del error -----+ +--- Direccion de trabajo
| | "Task address"
02 01 0009 . 00009310
| |
Numero del subsistema -+ +--- Codigo general del error
La "Task address" es simplemente la dirección de la RAM a donde apun-
taba cuando se produjo el error. En nuestro ejemplo ocurrió en la
dirección 9310 (en hexadecimal). En este caso ello significa que ocurrió
en el " CLI process number 1 " (Proceso 1 del CLI). Si estás depurando
(debugging) un programa que utiliza muchas direcciones distintas esto
puede serte útil.Esto me informa de que el problema estaba en mi programa
y no el sistema.
En la parte izqda aparece un numero formado por tres campos:
Los primeros dos digitos, nos dice que módulo del sistema operativo
arrojó el error. En nuestro ejemplo era el 02, que nos informa de que el
error ocurrió en la "graphics library"(libreria de gráficos)
El primer digito digito es aún mas divertido. El bit mas significativo
de este dígito nos dice si el sistema se puede recuperar o no. Si el
número hubiese sido 82 en lugar de 02, hubiera significado la muerte
fulminante y posterior reseteo del amiga. La notación hexadecimal puede
dar lugar a confusión. Si el primer de los digitos es mayor que 7 (hexa-
decimal) entonces réstale 8. Así, si hubiese sido B1, (A=10, B=11, C=12,
D=13,E=14,F=15) al restarle 8 queda:
B - 8 = 3
\|/
Nos queda pues: 31.Esto quiere decir que el error lo dio el Workbench.
La tabla de los codigos de identificación es:
Exec Library 01 Console Device 11
Graphics Library 02 GamePort Device 12
Layers Library 03 Keyboard Device 13
Intuition Library 04 TrackDisk Device 14
Math Library 05 Timer Device 15
CList Library 06 CIA Resource 20
DOS Library 07 Disk Resource 21
RAM Library 08 Misc Resource 22
Icon Library 09 BootStrap 30
Audio Device 10 Workbench 31
Los dos digitos siguientes especifican el tipo general de error que
ha ocurrido.La mayoria de las veces es 00,aunque tambien pueden ser otros
como se indica a continuacion. En nuestro caso es el 01, lo que viene a
significar que la libreria de graficos no ha sido capaz de encontrar
suficiente memoria libre
Memoria insuficiente 01 error de apertura de dispositivo 04
error al crear libreria 02 error de apertura de medio 05
error de apertura de lib. 03 error de entrada/salida 06
Los cuatro últimos dígitos del numero de alerta, nos dan información
específica del error. La interpretación de este depende del codigo del
subsistema. Pueden aparecer numeros iguales con significados distintos.
En nuestro ejemplo el codigo especifico es el 0009. Como hablamos de un
error en la libreria de gráficos,podemos determinar que el error es el
llamado "TextTmpRas" que indica un fallo en la llamada a la rutina de
texto (que imprime un caracter en la pantalla), pues ésta se ha que dado
sin memoria al intentar asignar memoria para la estructura de datos.
Un caso especial es el causado por una trampa (trap) del 68000 (por
ejemplo se ejecuta un codigo ilegal). Su ejecucion causará una alerta.
Cuando esto suceda,la parte izquierda del guru será un valor pequeño,
mientras el codigo del subsistema y el codigo general serán 0. Los "nume-
ros trampa" son parte del chip 68000, y no son asignados por la ROM como
los demás códigos.La mayoria de ellos no son mostrados por el ordenador.
La siguiente, es una lista de los posibles errores:
Error de Bus 02 Violacion de privil. 08
Error de direccion 03 Rasto de la instr. 09
Instruction ilegal 04 Emulacion linea A 0A
Divides por 0 05 emulacion linea F 0B
instruccion CHK 06 TRAP 0 ... 15 20 ... 2F
TRAPV (sobrecarga) 07
La siguiente es una lista de los codigos especificos de error:
Exec Library
ExcptVect 81000001
BaseChkSum 81000002
LibChkSum 81000003
LibMem 81000004
MemCorrupt 81000005
IntrMem 81000006
Graphics Library
CopDisplay 82010001
CopInstr 82010002
CopListOver 82000003
CopIListOver 82000004
CopListHead 82010005
LongFrame 82010006
ShortFrame 82010007
FloodFill 82010008
TextTmpRas 02010009
BltBitMap 8201000A
Intuition Library
GadgetType 84000001
CreatePort 84010002
ItemAlloc 84010003
SubAlloc 84010004
PlaneAlloc 84010005
ItemBoxTop 84000006
OpenScreen 84010007
OpenScrnRast 84010008
SysScrnType 84000009
AddSWGadget 8401000A
OpenWindow 8401000B
BadState 8400000C
BadMessage 8400000D
WeirdEcho 8400000E
NoConsole 8400000F
DOS Library
StartMem 07010001
EndTask 07000002
QPktFail 07000003
AsyncPkt 07000004
FreeVec 07000005
DiskBlkSeq 07000006
BitMap 07000007
KeyFree 07000008
BadChkSum 07000009
DiskError 0700000A
KeyRange 0700000B
BadOverlay 0700000C
TrackDisk Device
TDCalibSeek 14000001
TDDelay 14000002
Timer Device
TMBadReq 15000001
Disk Resource
DRHasDisk 21000001
DRIntNoAct 21000002
BootStrap
BootError 30000001